// pages/goods/list/list.js
// 引入接口函数
import { findGoodsListPageAndLimit } from '../../../utils/api'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    page: 1, // 页码
    limit: 10, // 每页的条数
    goodsList: [], // 商品列表数组数据
    status: 1, // 用来存储4种状态, 1----有数据,2----没有数据,3----报错,4----正在加载
    category2Id:''
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    options.category2Id && this.setData({category2Id:options.category2Id})
    this.getGoodsList()
  },
  // 获取商品分页的列表数据
  async getGoodsList () {
    try {
      let { page, limit, goodsList,category2Id } = this.data // 取出页码和每页的条数
      // 接口调用前先设定状态为加载
      this.setData({ status: 4 }) // 正在加载
      // 调用接口,传入一个对象,对象中有page和limit
      const result = await findGoodsListPageAndLimit({ page, limit ,category2Id})
      if (result.code !== 200) {
        this.setData({ status: 3 }) // 没有数据
        return
      }
      // =====代码执行到这里====一定是成功的,
      // 如果条数是10条,一定有数据, 状态为1
      // 如果条数小于10,说明是最后一页,以后就没有数据了
      if (result.data.records.length === 0) {
        // 没有数据
        this.setData({ status: 2 })
        return
      }
      // if (result.data.records.length < 10) {
      //   this.setData({ status: 2 }) // 就意味着 下一页已经没有数据了
      // } else { 
      //   this.setData({ status: 1 }) // 还有数据 
      // }
      // 有数据或者即将没有数据,都重新更新一次状态
      this.setData({
        status: result.data.records.length < 10 ? 2 : 1
      })
      goodsList.push(...result.data.records)
      // 更新数据
      this.setData({
        goodsList,
        page: ++page
      })
    } catch (error) {
      this.setData({ status: 3 }) // 报错状态
      console.log(error)
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    // 触底后继续获取下一页的数据,下一页有数据才这么做
    this.data.status === 1 && this.getGoodsList()
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})